home *** CD-ROM | disk | FTP | other *** search
/ All for Cell Phones: Sony Ericsson / Sony-Ericsson 2004.iso / Java / Backgammon / m.jar / morpheme / backgammon / j.class (.txt) < prev   
Encoding:
Java Class File  |  2002-08-16  |  14.1 KB  |  1,047 lines

  1. package morpheme.backgammon;
  2.  
  3. import java.io.DataInputStream;
  4. import java.io.DataOutputStream;
  5. import java.util.Random;
  6. import java.util.Vector;
  7.  
  8. // $FF: renamed from: morpheme.backgammon.j
  9. public class class_0 {
  10.    // $FF: renamed from: new boolean
  11.    public boolean field_0 = false;
  12.    // $FF: renamed from: a int
  13.    private int field_1 = 0;
  14.    // $FF: renamed from: case morpheme.backgammon.g
  15.    private transient g field_2;
  16.    // $FF: renamed from: char morpheme.backgammon.e[]
  17.    private static final e[] field_3 = new e[]{new e(0, 'B', 2), new e(1, ' '), new e(2, ' '), new e(3, ' '), new e(4, ' '), new e(5, 'W', 5), new e(6, ' '), new e(7, 'W', 3), new e(8, ' '), new e(9, ' '), new e(10, ' '), new e(11, 'B', 5), new e(12, 'W', 5), new e(13, ' '), new e(14, ' '), new e(15, ' '), new e(16, 'B', 3), new e(17, ' '), new e(18, 'B', 5), new e(19, ' '), new e(20, ' '), new e(21, ' '), new e(22, ' '), new e(23, 'W', 2), new e(24, ' '), new e(25, ' ')};
  18.    // $FF: renamed from: for morpheme.backgammon.e[]
  19.    protected e[] field_4 = method_0();
  20.    // $FF: renamed from: do int
  21.    protected int field_5 = 1;
  22.    // $FF: renamed from: if int
  23.    protected int field_6 = 64;
  24.    // $FF: renamed from: try char
  25.    protected char field_7 = ' ';
  26.    // $FF: renamed from: else int
  27.    protected int field_8 = 0;
  28.    // $FF: renamed from: byte int[]
  29.    protected int[] field_9 = new int[]{-1, -1, -1, -1};
  30.    // $FF: renamed from: int boolean
  31.    protected boolean field_10 = false;
  32.  
  33.    // $FF: renamed from: new () morpheme.backgammon.e[]
  34.    public static e[] method_0() {
  35.       e[] var0 = new e[field_3.length];
  36.  
  37.       for(int var1 = 0; var1 < var0.length; ++var1) {
  38.          var0[var1] = (e)field_3[var1].clone();
  39.       }
  40.  
  41.       return var0;
  42.    }
  43.  
  44.    public class_0(g var1) {
  45.       this.field_2 = var1;
  46.    }
  47.  
  48.    public class_0(String var1, int var2, char var3, int var4, g var5) {
  49.       this.field_5 = var2;
  50.       this.field_7 = var3;
  51.       this.field_8 = var4;
  52.       this.field_2 = var5;
  53.       this.method_1();
  54.    }
  55.  
  56.    public class_0() {
  57.    }
  58.  
  59.    public class_0(class_0 var1) {
  60.       this.field_4 = new e[26];
  61.  
  62.       for(int var2 = 0; var2 < this.field_4.length; ++var2) {
  63.          this.field_4[var2] = new e(var1.field_4[var2].a, var1.field_4[var2].do, var1.field_4[var2].if);
  64.       }
  65.  
  66.       this.field_9 = new int[]{var1.field_9[0], var1.field_9[1], var1.field_9[2], var1.field_9[3]};
  67.       this.field_10 = var1.field_10;
  68.       this.field_5 = var1.field_5;
  69.       this.field_7 = var1.field_7;
  70.       this.field_8 = var1.field_8;
  71.    }
  72.  
  73.    // $FF: renamed from: else () void
  74.    public void method_1() {
  75.       this.field_0 = true;
  76.    }
  77.  
  78.    // $FF: renamed from: a (morpheme.backgammon.f) void
  79.    public void method_2(f var1) {
  80.       this.method_3(var1);
  81.       int var3 = var1.if();
  82.       int var4 = var1.do();
  83.       int var5 = var4;
  84.       if (var4 == -11) {
  85.          var5 = var1.a() == 'B' ? 24 : -1;
  86.       }
  87.  
  88.       int var6 = var3;
  89.       if (var3 == 25) {
  90.          var6 = 24;
  91.       } else if (var3 == 24) {
  92.          var6 = -1;
  93.       }
  94.  
  95.       int var7 = Math.abs(var6 - var5);
  96.       boolean var8 = false;
  97.       boolean var9 = false;
  98.  
  99.       for(int var10 = 3; var10 > -1; --var10) {
  100.          if (this.field_9[var10] == var7) {
  101.             this.method_19(var10);
  102.             var9 = true;
  103.          }
  104.  
  105.          if (var9) {
  106.             break;
  107.          }
  108.       }
  109.  
  110.       if (var4 == -11 && !var9) {
  111.          if (var7 < this.field_9[3]) {
  112.             this.method_19(3);
  113.          } else if (var7 < this.field_9[2]) {
  114.             this.method_19(2);
  115.          } else if (var7 < this.field_9[0]) {
  116.             this.method_19(0);
  117.          } else if (var7 < this.field_9[1]) {
  118.             this.method_19(1);
  119.          }
  120.       }
  121.  
  122.    }
  123.  
  124.    // $FF: renamed from: if (morpheme.backgammon.f) void
  125.    private void method_3(f var1) {
  126.       int var2 = var1.if();
  127.       int var3 = var1.do();
  128.       int var4 = this.field_4[var2].a();
  129.       char var6 = var4 <= 1 ? 32 : var1.a();
  130.       if (var3 == -11) {
  131.          this.method_18(var2, var6, var4 - 1);
  132.       } else {
  133.          char var7 = this.field_4[var3].do();
  134.          int var5 = this.field_4[var3].a();
  135.          this.method_18(var2, var6, var4 - 1);
  136.          if (var1.a() != var7 && var7 != ' ') {
  137.             if (var1.a() == 'W') {
  138.                this.method_18(24, 'B', this.field_4[24].a() + 1);
  139.             } else {
  140.                this.method_18(25, 'W', this.field_4[25].a() + 1);
  141.             }
  142.  
  143.             this.method_18(var3, var1.a(), 1);
  144.          } else {
  145.             var5 = this.field_4[var3].a();
  146.             this.method_18(var3, var1.a(), var5 + 1);
  147.          }
  148.  
  149.       }
  150.    }
  151.  
  152.    // $FF: renamed from: new (int) boolean
  153.    public boolean method_4(int var1) {
  154.       return var1 > 0 && var1 < 27 ? this.field_4[var1].new() : false;
  155.    }
  156.  
  157.    // $FF: renamed from: a () boolean
  158.    public boolean method_5() {
  159.       return false;
  160.    }
  161.  
  162.    // $FF: renamed from: char () void
  163.    public void method_6() {
  164.       this.field_4 = method_0();
  165.       this.method_27();
  166.       this.method_14();
  167.    }
  168.  
  169.    // $FF: renamed from: for () boolean
  170.    public boolean method_7() {
  171.       boolean var1 = true;
  172.       boolean var2 = true;
  173.  
  174.       for(int var3 = 0; var3 < 24; ++var3) {
  175.          if (this.field_4[var3].do() == 'W') {
  176.             var1 = false;
  177.          }
  178.  
  179.          if (this.field_4[var3].do() == 'B') {
  180.             var2 = false;
  181.          }
  182.       }
  183.  
  184.       return var2 || var1;
  185.    }
  186.  
  187.    // $FF: renamed from: byte () char
  188.    public char method_8() {
  189.       if (this.method_7()) {
  190.          boolean var1 = true;
  191.          boolean var2 = true;
  192.  
  193.          for(int var3 = 0; var3 < 24; ++var3) {
  194.             if (this.field_4[var3].do() == 'W') {
  195.                var1 = false;
  196.             }
  197.  
  198.             if (this.field_4[var3].do() == 'B') {
  199.                var2 = false;
  200.             }
  201.          }
  202.  
  203.          if (var2) {
  204.             return 'B';
  205.          }
  206.  
  207.          if (var1) {
  208.             return 'W';
  209.          }
  210.       }
  211.  
  212.       return ' ';
  213.    }
  214.  
  215.    // $FF: renamed from: int (char) boolean
  216.    public boolean method_9(char var1) {
  217.       if (var1 == 'B') {
  218.          if (this.field_4[24].a() != 0) {
  219.             return false;
  220.          } else {
  221.             for(int var3 = 0; var3 < 18; ++var3) {
  222.                if (this.field_4[var3].do() == 'B' && this.field_4[var3].a() != 0) {
  223.                   return false;
  224.                }
  225.             }
  226.  
  227.             return true;
  228.          }
  229.       } else if (this.field_4[25].a() != 0) {
  230.          return false;
  231.       } else {
  232.          for(int var2 = 6; var2 < 25; ++var2) {
  233.             if (this.field_4[var2].do() == 'W' && this.field_4[var2].a() != 0) {
  234.                return false;
  235.             }
  236.          }
  237.  
  238.          return true;
  239.       }
  240.    }
  241.  
  242.    // $FF: renamed from: do (char) boolean
  243.    public boolean method_10(char var1) {
  244.       int var2 = var1 == 'B' ? 87 : 66;
  245.       int var3 = 0;
  246.  
  247.       for(int var4 = 0; var4 < 24; ++var4) {
  248.          if (this.method_22(var4) == var2) {
  249.             var3 += this.method_21(var4);
  250.          }
  251.       }
  252.  
  253.       return var3 == 15;
  254.    }
  255.  
  256.    // $FF: renamed from: case (char) boolean
  257.    public boolean method_11(char var1) {
  258.       int var2 = var1 == 'B' ? 87 : 66;
  259.       int var3 = 0;
  260.       if (var2 == 66) {
  261.          var3 += this.method_21(24);
  262.       } else {
  263.          var3 += this.method_21(25);
  264.       }
  265.  
  266.       if (var3 == 0) {
  267.          return false;
  268.       } else {
  269.          for(int var4 = 0; var4 < 24; ++var4) {
  270.             if (this.method_22(var4) == var2) {
  271.                var3 += this.method_21(var4);
  272.             }
  273.          }
  274.  
  275.          return var3 == 15;
  276.       }
  277.    }
  278.  
  279.    // $FF: renamed from: if (char) boolean
  280.    public boolean method_12(char var1) {
  281.       if (var1 != 'B' && var1 != 'W' && var1 != ' ') {
  282.          return false;
  283.       } else {
  284.          this.field_7 = var1;
  285.          return true;
  286.       }
  287.    }
  288.  
  289.    // $FF: renamed from: long () int
  290.    public int method_13() {
  291.       return this.field_5;
  292.    }
  293.  
  294.    // $FF: renamed from: goto () void
  295.    public void method_14() {
  296.       this.field_5 = 1;
  297.       this.field_8 = 0;
  298.       this.field_7 = ' ';
  299.    }
  300.  
  301.    // $FF: renamed from: case () boolean
  302.    public boolean method_15() {
  303.       if (this.field_5 < this.field_6) {
  304.          this.field_5 *= 2;
  305.          ++this.field_8;
  306.          return true;
  307.       } else {
  308.          return false;
  309.       }
  310.    }
  311.  
  312.    // $FF: renamed from: do () char
  313.    public char method_16() {
  314.       return this.field_7;
  315.    }
  316.  
  317.    // $FF: renamed from: int () boolean
  318.    public boolean method_17() {
  319.       if (this.method_16() == ' ') {
  320.          this.method_12((char)(this.field_2.try() == 'W' ? 'B' : 'W'));
  321.       } else {
  322.          this.field_7 = (char)(this.field_7 == 'B' ? 87 : 66);
  323.       }
  324.  
  325.       return true;
  326.    }
  327.  
  328.    // $FF: renamed from: a (int, char, int) void
  329.    public void method_18(int var1, char var2, int var3) {
  330.       if (var1 >= 0 && var1 <= 25) {
  331.          if (var3 < 1) {
  332.             var2 = ' ';
  333.          }
  334.  
  335.          if (var3 < 0) {
  336.             var3 = 0;
  337.          }
  338.  
  339.          this.field_4[var1] = new e(var1, var2, var3);
  340.       }
  341.    }
  342.  
  343.    // $FF: renamed from: try (int) void
  344.    public void method_19(int var1) {
  345.       this.field_9[var1] = -1;
  346.    }
  347.  
  348.    // $FF: renamed from: null () boolean
  349.    public boolean method_20() {
  350.       for(int var1 = 0; var1 < 4; ++var1) {
  351.          if (this.field_9[var1] != -1) {
  352.             return false;
  353.          }
  354.       }
  355.  
  356.       return true;
  357.    }
  358.  
  359.    // $FF: renamed from: a (int) int
  360.    public int method_21(int var1) {
  361.       return var1 >= 0 && var1 <= 25 ? this.field_4[var1].a() : 0;
  362.    }
  363.  
  364.    // $FF: renamed from: int (int) char
  365.    public char method_22(int var1) {
  366.       return var1 >= 0 && var1 <= 25 ? this.field_4[var1].do() : ' ';
  367.    }
  368.  
  369.    // $FF: renamed from: if (int) int
  370.    public int method_23(int var1) {
  371.       return this.field_9[var1];
  372.    }
  373.  
  374.    // $FF: renamed from: do (int) java.lang.String
  375.    public String method_24(int var1) {
  376.       return this.field_9[var1] == -1 ? "" : "" + this.field_9[var1];
  377.    }
  378.  
  379.    // $FF: renamed from: try () boolean
  380.    public boolean method_25() {
  381.       return this.field_10;
  382.    }
  383.  
  384.    // $FF: renamed from: a (int, int) boolean
  385.    public boolean method_26(int var1, int var2) {
  386.       if ((var1 <= 0 || var1 >= 7 || var2 <= 0 || var2 >= 7) && var1 != -1 && var2 != -1) {
  387.          return false;
  388.       } else {
  389.          this.field_9[0] = var1;
  390.          this.field_9[1] = var2;
  391.          this.field_10 = false;
  392.          if (var1 == var2) {
  393.             this.field_9[2] = this.field_9[3] = this.field_9[1];
  394.             this.field_10 = true;
  395.          } else {
  396.             this.field_9[2] = this.field_9[3] = -1;
  397.          }
  398.  
  399.          return true;
  400.       }
  401.    }
  402.  
  403.    // $FF: renamed from: if () void
  404.    public void method_27() {
  405.       Random var1 = new Random();
  406.       this.field_1 = var1.nextInt() % 18 + 18;
  407.       this.field_9[0] = 1 + this.field_1 / 6;
  408.       this.field_9[1] = 1 + this.field_1 % 6;
  409.       if (this.field_9[1] > this.field_9[0]) {
  410.          int var2 = this.field_9[0];
  411.          this.field_9[0] = this.field_9[1];
  412.          this.field_9[1] = var2;
  413.       }
  414.  
  415.       if (this.field_9[0] == this.field_9[1]) {
  416.          this.field_9[2] = this.field_9[1];
  417.          this.field_9[3] = this.field_9[1];
  418.          this.field_10 = true;
  419.       } else {
  420.          this.field_9[2] = -1;
  421.          this.field_9[3] = -1;
  422.          this.field_10 = false;
  423.       }
  424.  
  425.    }
  426.  
  427.    // $FF: renamed from: for (char, int) int
  428.    public int method_28(char var1, int var2) {
  429.       return var1 == 'W' ? var2 - 1 : 6 - (var2 - 18);
  430.    }
  431.  
  432.    // $FF: renamed from: if (char, int) int
  433.    public int method_29(char var1, int var2) {
  434.       return var1 == 'B' ? var2 - 1 : 6 - (var2 - 18);
  435.    }
  436.  
  437.    // $FF: renamed from: a (char, int) boolean
  438.    public boolean method_30(char var1, int var2) {
  439.       if (var2 == -11 && this.method_9(var1)) {
  440.          return true;
  441.       } else if (var2 >= 0 && var2 <= 23) {
  442.          if (var1 == 'B' && this.field_4[var2].do() == 'W' && this.field_4[var2].a() > 1) {
  443.             return false;
  444.          } else {
  445.             return var1 != 'W' || this.field_4[var2].do() != 'B' || this.field_4[var2].a() <= 1;
  446.          }
  447.       } else {
  448.          return false;
  449.       }
  450.    }
  451.  
  452.    // $FF: renamed from: byte (char) boolean
  453.    public boolean method_31(char var1) {
  454.       boolean var2 = false;
  455.  
  456.       for(int var3 = 0; var3 < 4; ++var3) {
  457.          if (this.field_9[var3] != -1) {
  458.             var2 = true;
  459.             break;
  460.          }
  461.       }
  462.  
  463.       if (!var2) {
  464.          return false;
  465.       } else {
  466.          byte var4;
  467.          if (var1 == 'W') {
  468.             var4 = 25;
  469.          } else {
  470.             var4 = 24;
  471.          }
  472.  
  473.          if (this.field_4[var4].a() != 0) {
  474.             for(int var11 = 0; var11 < 4; ++var11) {
  475.                if (this.method_23(var11) != -1) {
  476.                   int var14 = this.method_29(var1, this.method_23(var11));
  477.                   if (this.method_30(var1, var14)) {
  478.                      return true;
  479.                   }
  480.                }
  481.             }
  482.  
  483.             return false;
  484.          } else {
  485.             if (this.method_9(var1)) {
  486.                for(int var5 = 0; var5 < 4; ++var5) {
  487.                   int var6 = this.method_23(var5);
  488.                   if (var6 != -1) {
  489.                      if (this.field_4[this.method_28(var1, var6)].do() == var1 && this.field_4[this.method_28(var1, var6)].a() > 0) {
  490.                         return true;
  491.                      }
  492.  
  493.                      int var7 = 0;
  494.  
  495.                      for(int var8 = 6; var8 > var6; --var8) {
  496.                         if (this.field_4[this.method_28(var1, var8)].do() == var1) {
  497.                            var7 += this.field_4[this.method_28(var1, var8)].a();
  498.                         }
  499.                      }
  500.  
  501.                      if (var7 == 0) {
  502.                         return true;
  503.                      }
  504.                   }
  505.                }
  506.             }
  507.  
  508.             if (!this.method_25()) {
  509.                for(int var9 = 0; var9 < 24; ++var9) {
  510.                   if (this.field_4[var9].do() == var1 && this.field_4[var9].a() > 0) {
  511.                      int var12 = this.method_23(0);
  512.                      int var15 = this.method_23(1);
  513.                      if (var1 == 'B') {
  514.                         if (this.method_30(var1, var9 + var12) && var12 != -1) {
  515.                            return true;
  516.                         }
  517.  
  518.                         if (this.method_30(var1, var9 + var15) && var15 != -1) {
  519.                            return true;
  520.                         }
  521.                      } else {
  522.                         if (this.method_30(var1, var9 - var12) && var12 != -1) {
  523.                            return true;
  524.                         }
  525.  
  526.                         if (this.method_30(var1, var9 - var15) && var15 != -1) {
  527.                            return true;
  528.                         }
  529.                      }
  530.                   }
  531.                }
  532.             } else {
  533.                for(int var10 = 0; var10 < 24; ++var10) {
  534.                   if (this.field_4[var10].do() == var1 && this.field_4[var10].a() > 0) {
  535.                      int var13 = 0;
  536.                      int var16 = 0;
  537.  
  538.                      for(int var17 = 0; var17 < 4; ++var17) {
  539.                         if (this.method_23(var17) != -1) {
  540.                            var13 = this.method_23(var17);
  541.                            ++var16;
  542.                         }
  543.                      }
  544.  
  545.                      if (var1 == 'B' && this.method_30(var1, var10 + var13)) {
  546.                         return true;
  547.                      }
  548.  
  549.                      if (var1 == 'W' && this.method_30(var1, var10 - var13)) {
  550.                         return true;
  551.                      }
  552.                   }
  553.                }
  554.             }
  555.  
  556.             return false;
  557.          }
  558.       }
  559.    }
  560.  
  561.    // $FF: renamed from: void () int
  562.    public int method_32() {
  563.       return this.field_8;
  564.    }
  565.  
  566.    // $FF: renamed from: a (int, char) java.util.Vector
  567.    public Vector method_33(int var1, char var2) {
  568.       Vector var3 = new Vector();
  569.       var3.addElement(new f(var1, var1, 'W'));
  570.       int var4 = this.method_23(0);
  571.       int var5 = this.method_23(1);
  572.       if (var2 == 'W') {
  573.          if (var1 == 25) {
  574.             var1 = 24;
  575.          }
  576.  
  577.          if (var4 != var5) {
  578.             boolean var6 = false;
  579.             boolean var7 = false;
  580.             int var8 = var1 - var4;
  581.             int var9 = var1 - var5;
  582.             if (var5 != -1 && this.method_34(var1, var5, 'W') && var9 > -1) {
  583.                f var10 = new f(var1, var9, 'W');
  584.                var3.addElement(var10);
  585.                var7 = true;
  586.             }
  587.  
  588.             if (var4 != -1 && this.method_34(var1, var4, 'W') && var8 > -1) {
  589.                f var24 = new f(var1, var8, 'W');
  590.                var3.addElement(var24);
  591.                var6 = true;
  592.             }
  593.  
  594.             if (var4 != -1 && var5 != -1 && (var6 || var7)) {
  595.                int var25 = var8 - var5;
  596.                if (var7) {
  597.                   var25 = var9 - var4;
  598.                }
  599.  
  600.                if (this.method_30('W', var25) && var25 > -1) {
  601.                   f var11 = new f(var1, var25, 'W');
  602.                   var3.addElement(var11);
  603.                }
  604.             }
  605.          } else {
  606.             int var12 = var1 - var4;
  607.             int var15 = 0;
  608.  
  609.             for(int var18 = 0; var18 < 4; ++var18) {
  610.                if (this.field_9[var18] != -1) {
  611.                   ++var15;
  612.                }
  613.             }
  614.  
  615.             for(int var21 = 0; var21 < var15 && this.method_34(var1 - var4 * var21, var4, 'W'); ++var21) {
  616.                int var26 = var12 - var4 * var21;
  617.                if (var26 > -1) {
  618.                   f var31 = new f(var1, var26, 'W');
  619.                   var3.addElement(var31);
  620.                }
  621.             }
  622.          }
  623.       } else if (var2 == 'B') {
  624.          if (var4 != var5) {
  625.             boolean var13 = false;
  626.             boolean var16 = false;
  627.             if (var1 == 24) {
  628.                var1 = -1;
  629.             }
  630.  
  631.             int var19 = var1 + var4;
  632.             int var22 = var1 + var5;
  633.             if (var5 != -1 && this.method_34(var1, var5, 'B')) {
  634.                if (var22 >= 24) {
  635.                   var22 = -11;
  636.                }
  637.  
  638.                if (var22 < 24) {
  639.                   f var27 = new f(var1, var22, 'B');
  640.                   var3.addElement(var27);
  641.                   var16 = true;
  642.                }
  643.             }
  644.  
  645.             if (var4 != -1 && this.method_34(var1, var4, 'B')) {
  646.                if (var19 >= 24) {
  647.                   var19 = -11;
  648.                }
  649.  
  650.                if (var19 < 24) {
  651.                   f var28 = new f(var1, var19, 'B');
  652.                   var3.addElement(var28);
  653.                   var13 = true;
  654.                }
  655.             }
  656.  
  657.             if (var4 != -1 && var5 != -1 && (var13 || var16)) {
  658.                int var29 = var19 + var5;
  659.                if (var16) {
  660.                   var29 = var22 + var4;
  661.                }
  662.  
  663.                if (this.method_30('B', var29)) {
  664.                   if (var29 >= 24) {
  665.                      var29 = -11;
  666.                   }
  667.  
  668.                   if (var29 < 24) {
  669.                      f var32 = new f(var1, var29, 'B');
  670.                      var3.addElement(var32);
  671.                   }
  672.                }
  673.             }
  674.          } else {
  675.             if (var1 == 24) {
  676.                var1 = -1;
  677.             }
  678.  
  679.             int var14 = var1 + var4;
  680.             int var17 = 0;
  681.  
  682.             for(int var20 = 0; var20 < 4; ++var20) {
  683.                if (this.field_9[var20] != -1) {
  684.                   ++var17;
  685.                }
  686.             }
  687.  
  688.             for(int var23 = 0; var23 < var17 && this.method_34(var1 + var4 * var23, var4, 'B'); ++var23) {
  689.                int var30 = var14 + var4 * var23;
  690.                if (var30 >= 24) {
  691.                   var30 = -11;
  692.                }
  693.  
  694.                if (var30 < 24) {
  695.                   f var33 = new f(var1, var30, 'B');
  696.                   var3.addElement(var33);
  697.                }
  698.             }
  699.          }
  700.       }
  701.  
  702.       return var3;
  703.    }
  704.  
  705.    // $FF: renamed from: a (int, int, char) boolean
  706.    public boolean method_34(int var1, int var2, char var3) {
  707.       if (var3 == 'W') {
  708.          int var5 = var1 - var2;
  709.          return this.method_22(var5) != 'B' || this.method_21(var5) <= 1;
  710.       } else if (var3 == 'B') {
  711.          int var4 = var1 + var2;
  712.          return this.method_22(var4) != 'W' || this.method_21(var4) <= 1;
  713.       } else {
  714.          return false;
  715.       }
  716.    }
  717.  
  718.    // $FF: renamed from: for (int) java.lang.String
  719.    public String method_35(int var1) {
  720.       int var2 = this.method_21(var1);
  721.       char var3 = this.method_22(var1);
  722.       if (var2 == 0) {
  723.          return "|   ";
  724.       } else {
  725.          return var2 < 10 ? "| " + var2 + var3 + "" : "|" + var2 + var3 + "";
  726.       }
  727.    }
  728.  
  729.    public String toString() {
  730.       String var1 = "| 11| 10| 9 | 8 | 7 | 6 | 24| 5 | 4 | 3 | 2 | 1 | 0 |\n";
  731.       String var2 = "-----------------------------------------------------\n";
  732.       String var3 = "| 12| 13| 14| 15| 16| 17| 25| 18| 19| 20| 21| 22| 23|\n";
  733.       String var4 = "";
  734.  
  735.       for(int var5 = 11; var5 > 6; --var5) {
  736.          var4 = var4 + this.method_35(var5);
  737.       }
  738.  
  739.       var4 = var4 + this.method_35(24);
  740.  
  741.       for(int var6 = 6; var6 > -1; --var6) {
  742.          var4 = var4 + this.method_35(var6);
  743.       }
  744.  
  745.       var4 = var4 + "\n";
  746.       String var7 = "";
  747.  
  748.       for(int var8 = 12; var8 < 18; ++var8) {
  749.          var7 = var7 + this.method_35(var8);
  750.       }
  751.  
  752.       var7 = var7 + this.method_35(25);
  753.  
  754.       for(int var9 = 18; var9 < 24; ++var9) {
  755.          var7 = var7 + this.method_35(var9);
  756.       }
  757.  
  758.       var7 = var7 + "\n";
  759.       String var10 = "";
  760.  
  761.       for(int var11 = 0; var11 < 4; ++var11) {
  762.          var10 = var10 + "Dice " + var11 + " = " + this.field_9[var11] + "\n";
  763.       }
  764.  
  765.       String var12 = "";
  766.       var12 = var12 + "Cube: Value = " + this.field_5 + " Owner = " + this.field_7 + "\n";
  767.       return var1 + var4 + var2 + var7 + var3 + var10 + var12;
  768.    }
  769.  
  770.    // $FF: renamed from: if (morpheme.backgammon.f[]) morpheme.backgammon.f[]
  771.    public f[] method_36(f[] var1) {
  772.       int var2 = 0;
  773.  
  774.       for(int var3 = 0; var3 < var1.length; ++var3) {
  775.          if (var1[var3] != null) {
  776.             ++var2;
  777.          }
  778.       }
  779.  
  780.       f[] var4 = new f[var2];
  781.       var2 = 0;
  782.  
  783.       for(int var5 = 0; var5 < var1.length; ++var5) {
  784.          if (var1[var5] != null) {
  785.             var4[var5++] = var1[var5];
  786.          }
  787.       }
  788.  
  789.       return var4;
  790.    }
  791.  
  792.    // $FF: renamed from: a (morpheme.backgammon.f[]) morpheme.backgammon.f[]
  793.    public f[] method_37(f[] var1) {
  794.       f[] var2 = var1;
  795.       f[] var3 = new f[5];
  796.       int var4 = 0;
  797.       int var5 = 0;
  798.       int var6 = 0;
  799.       int var7 = this.method_23(0);
  800.       int var8 = this.method_23(1);
  801.  
  802.       for(int var9 = 0; var9 < 4; ++var9) {
  803.          if (this.method_23(var9) > 0) {
  804.             var5 += this.method_23(var9);
  805.          }
  806.       }
  807.  
  808.       for(int var10 = 0; var10 < var2.length; ++var10) {
  809.          if (var2[var10] == null) {
  810.             return var3;
  811.          }
  812.  
  813.          int var11 = var2[var10].if();
  814.          int var12 = var2[var10].do();
  815.          char var13 = var2[var10].a();
  816.          int var14 = var2[var10].a() == 'B' ? 1 : -1;
  817.          if (var2[var10].if() == 25 && var2[var10].a() == 'W') {
  818.             var11 = 24;
  819.          }
  820.  
  821.          if (var2[var10].if() == 24 && var2[var10].a() == 'B') {
  822.             var11 = -1;
  823.          }
  824.  
  825.          if (var2[var10].do() == -11) {
  826.             var12 = var13 == 'B' ? 24 : -1;
  827.          }
  828.  
  829.          var6 = Math.abs(var11 - var12);
  830.          if (var2[var10].do() == -11) {
  831.             boolean var15 = false;
  832.  
  833.             for(int var16 = 0; var16 < 4; ++var16) {
  834.                if (var6 <= this.method_23(var16)) {
  835.                   var3[var4++] = var2[var10];
  836.                   if (var4 > 4) {
  837.                      return new f[0];
  838.                   }
  839.  
  840.                   var15 = true;
  841.                   break;
  842.                }
  843.             }
  844.  
  845.             if (var15) {
  846.                continue;
  847.             }
  848.  
  849.             if (this.method_25()) {
  850.                for(boolean var26 = false; var6 > var7; var11 += var14 * var7) {
  851.                   var3[var4++] = new f(var11, var11 + var14 * var7, var13);
  852.                   if (var4 > 4) {
  853.                      return new f[0];
  854.                   }
  855.  
  856.                   var6 -= var7;
  857.                }
  858.  
  859.                if (var6 <= var7) {
  860.                   var3[var4++] = new f(var11, -11, var13);
  861.                   if (var4 > 4) {
  862.                      return new f[0];
  863.                   }
  864.                }
  865.                continue;
  866.             }
  867.  
  868.             if (var6 < var5) {
  869.                if (this.method_30(var13, var11 + var7 * var14)) {
  870.                   var3[var4++] = new f(var2[var10].if(), var2[var10].if() + var14 * var7, var13);
  871.                   var3[var4++] = new f(var2[var10].if() + var14 * var7, -11, var13);
  872.                   continue;
  873.                }
  874.  
  875.                if (this.method_30(var13, var11 + var8 * var14)) {
  876.                   var3[var4++] = new f(var2[var10].if(), var2[var10].if() + var14 * var8, var13);
  877.                   var3[var4++] = new f(var2[var10].if() + var14 * var8, -11, var13);
  878.                   continue;
  879.                }
  880.             }
  881.          }
  882.  
  883.          if (var6 > var5) {
  884.             return new f[0];
  885.          }
  886.  
  887.          if (!this.method_25()) {
  888.             if (var6 == var7) {
  889.                var3[var4++] = var2[var10];
  890.                if (var4 > 4) {
  891.                   return new f[0];
  892.                }
  893.             } else if (var6 == var8) {
  894.                var3[var4++] = var2[var10];
  895.                if (var4 > 4) {
  896.                   return new f[0];
  897.                }
  898.             } else {
  899.                if (var6 != var5) {
  900.                   return new f[0];
  901.                }
  902.  
  903.                if (this.method_30(var2[var10].a(), var11 + var14 * var7)) {
  904.                   var3[var4++] = new f(var2[var10].if(), var11 + var14 * var7, var2[var10].a());
  905.                   var3[var4++] = new f(var11 + var14 * var7, var2[var10].do(), var2[var10].a());
  906.                   if (var4 > 4) {
  907.                      return new f[0];
  908.                   }
  909.                } else if (this.method_30(var2[var10].a(), var11 + var14 * var8)) {
  910.                   var3[var4++] = new f(var2[var10].if(), var11 + var14 * var8, var2[var10].a());
  911.                   var3[var4++] = new f(var11 + var14 * var8, var2[var10].do(), var2[var10].a());
  912.                   if (var4 > 4) {
  913.                      return new f[0];
  914.                   }
  915.                }
  916.             }
  917.          } else {
  918.             if (var6 % var7 != 0 || var6 > var5) {
  919.                return new f[0];
  920.             }
  921.  
  922.             int var24 = var2[var10].if();
  923.             int var25 = var11 + var14 * var7;
  924.  
  925.             for(int var17 = 0; var17 < var6 / var7; ++var17) {
  926.                var3[var4++] = new f(var24, var25, var2[var10].a());
  927.                var24 = var25;
  928.                var25 += var14 * var7;
  929.                if (var4 > 4) {
  930.                   return new f[0];
  931.                }
  932.             }
  933.          }
  934.       }
  935.  
  936.       return var3;
  937.    }
  938.  
  939.    // $FF: renamed from: for (char) int
  940.    public int method_38(char var1) {
  941.       int var2 = 0;
  942.  
  943.       for(int var3 = 0; var3 < 26; ++var3) {
  944.          if (this.method_22(var3) == var1) {
  945.             var2 += this.method_21(var3);
  946.          }
  947.       }
  948.  
  949.       return var2;
  950.    }
  951.  
  952.    // $FF: renamed from: a (char) int
  953.    public int method_39(char var1) {
  954.       int var2 = 0;
  955.  
  956.       for(int var3 = 0; var3 < 26; ++var3) {
  957.          if (this.method_22(var3) == var1) {
  958.             var2 += this.method_21(var3) * this.method_41(var1, var3);
  959.          }
  960.       }
  961.  
  962.       return var2;
  963.    }
  964.  
  965.    // $FF: renamed from: new (char) java.util.Vector
  966.    public Vector method_40(char var1) {
  967.       Vector var2 = new Vector();
  968.  
  969.       for(int var3 = 0; var3 < 26; ++var3) {
  970.          if (this.method_22(var3) == var1) {
  971.             var2.addElement(new Integer(var3));
  972.          }
  973.       }
  974.  
  975.       return var2;
  976.    }
  977.  
  978.    // $FF: renamed from: do (char, int) int
  979.    public int method_41(char var1, int var2) {
  980.       if (var2 > 23) {
  981.          return 25;
  982.       } else {
  983.          return var1 == 'B' ? 24 - var2 : var2 + 1;
  984.       }
  985.    }
  986.  
  987.    // $FF: renamed from: try (char) boolean
  988.    public boolean method_42(char var1) {
  989.       byte var2 = 0;
  990.       if (var1 == 'B') {
  991.          var2 = 18;
  992.       }
  993.  
  994.       int var3 = var2 + 6;
  995.  
  996.       for(int var4 = var2; var4 < var3; ++var4) {
  997.          if (this.method_21(var4) < 2) {
  998.             return false;
  999.          }
  1000.       }
  1001.  
  1002.       return true;
  1003.    }
  1004.  
  1005.    // $FF: renamed from: a (java.io.DataOutputStream) void
  1006.    public void method_43(DataOutputStream var1) {
  1007.       for(int var2 = 0; var2 < 26; ++var2) {
  1008.          this.field_4[var2].a(var1);
  1009.       }
  1010.  
  1011.       try {
  1012.          for(int var3 = 0; var3 < 4; ++var3) {
  1013.             var1.writeInt(this.method_23(var3));
  1014.          }
  1015.  
  1016.          var1.writeBoolean(this.field_10);
  1017.          var1.writeInt(this.field_5);
  1018.          var1.writeChar(this.field_7);
  1019.          var1.writeInt(this.field_8);
  1020.       } catch (Exception var4) {
  1021.          ((Throwable)var4).printStackTrace();
  1022.       }
  1023.  
  1024.    }
  1025.  
  1026.    // $FF: renamed from: a (java.io.DataInputStream) void
  1027.    public void method_44(DataInputStream var1) {
  1028.       for(int var2 = 0; var2 < 26; ++var2) {
  1029.          this.field_4[var2].a(var1);
  1030.       }
  1031.  
  1032.       try {
  1033.          for(int var3 = 0; var3 < 4; ++var3) {
  1034.             this.field_9[var3] = var1.readInt();
  1035.          }
  1036.  
  1037.          this.field_10 = var1.readBoolean();
  1038.          this.field_5 = var1.readInt();
  1039.          this.field_7 = var1.readChar();
  1040.          this.field_8 = var1.readInt();
  1041.       } catch (Exception var4) {
  1042.          ((Throwable)var4).printStackTrace();
  1043.       }
  1044.  
  1045.    }
  1046. }
  1047.